﻿Imports System
Imports System.Collections.Generic
Imports System.Linq
Imports System.Web
Imports System.Web.UI
Imports System.Web.UI.WebControls
Imports ISNet.WebUI.WebGrid
Imports System.Data
Imports ISNet.WebUI.WebTreeView
Imports log4net

Partial Class ResponseTarget
    Inherits System.Web.UI.Page
    Dim cmmtcode As String = ""
    Public LifeConfig1 As String
    Public LifeConfig2 As String
    Public LifeConfig3 As String
    Dim lockhash As New Hashtable
    Private Shared logger As ILog = LogManager.GetLogger("ResponseTarget")

    Protected Sub Page_Init(sender As Object, e As EventArgs) Handles Me.Init
        WebCombo3.EncodeOutput = True
    End Sub
    Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
        cmmtcode = Session("CMMT_OT_CODE")
        PlanYearsTxt.Text = Session("PlanYear")
        VersionTxt.Text = Session("Versions")
        'Session("FormID") = "F08"
        If Session("FCTR") Is Nothing Then
            Response.Redirect("Selector.aspx?type=44")
        End If
        If Session("users") Is Nothing Then
            Response.Redirect("LoginForm.aspx")
        End If

        GenerateValues()

        If IsPostBack = False Then
            Session.Remove("Search")
            Session.Remove("search_fctr")


            Label1.Text = "ระบบจัดทำงบประมาณ >> จัดทำงบประมาณ >> กำหนดเป้าหมายค่าธรรมเนียม "
            'If Session("Versions") = 1 Then
            '    div1.Visible = False
            '    div2.Visible = False
            '    SearhBtn.Visible = False
            '    WebTreeView1.Visible = False
            '    WebTreeView2.Visible = False
            '    WebTreeView3.Visible = False
            'End If
            Dim adapter As New SplitBudgetDSTableAdapters.ProductsTableAdapter

            Dim data As New SplitBudgetDS.ProductsDataTable
            'data = adapter.GetDataByPlanYear(Val(Session("PlanYear")))

            data = adapter.GetDataByP04(PlanYearsTxt.Text)
            ms8.DataValueField = "ProductCode"
            ms8.DataTextField = "Description"
            ms8.DataSource = data
            ms8.DataBind()

        End If


        'If WebGrid1.IsFlyPostBack = False Then

        '    PlotNode()
        'End If
        Dim prefil2 As String = ""
        prefil2 = Session("prefilter")
        Dim re_adap As New FormLockDSTableAdapters.FundCenterReleasesTableAdapter
        Dim rsql As String = ""
        rsql = " SELECT FundCenterReleases.FundCenter_FundCenterCode FROM FundCenterReleases "
        rsql += " WHERE PlanYear = " & Val(PlanYearsTxt.Text) & " "
        rsql += " AND Version = '" & VersionTxt.Text & "' "
        rsql += " AND FundCenter_FundCenterCode IN (" & prefil2 & ")" : rsql += " AND ReleaseFlag = 'Y' "
        'Response.Write(rsql)
        'Exit Sub
        Dim re_dt As New FormLockDS.FundCenterReleasesDataTable
        re_adap.GetDataByFilter(re_dt, rsql)
        For Each ritem As FormLockDS.FundCenterReleasesRow In re_dt
            lockhash.Remove(ritem.FundCenter_FundCenterCode) : lockhash.Add(ritem.FundCenter_FundCenterCode, True)
        Next
    End Sub

    Protected Sub WebGrid1_InitializeDataSource(ByVal sender As Object, ByVal e As ISNet.WebUI.WebGrid.DataSourceEventArgs) Handles WebGrid1.InitializeDataSource
        Dim adapter As New PDataSetTableAdapters.BudgetRevPlansTableAdapter
        Dim datatable As New PDataSet.BudgetRevPlansDataTable
        Dim prefil As String = ""
        prefil = Session("prefilter")
        Dim oldyear = CInt(PlanYearsTxt.Text) - 1
        'If Session("Versions") > 1 Then
        If IsPostBack = True And Session("Search") = "true" Then
            Dim sql As String
            sql = "with temp as( select BudgetRevPlans.id,BudgetRevPlans.FundCenter_FundCenterCode,FundCenters.Description As FCName,BudgetRevplans.Product_ProductCode AS ProductCode,Products.Description As ProductDesc,BudgetRevPlans.ProductItem_Id,ProductItems.Description As ProItemDesc"
            sql += " ,ActualLastYear2,ActualLastYear1,ForecastLastYear1,ForecastCurYear,LastYearMonth6,LastYearMonth7,LastYearMonth8,LastYearMonth9,LastYearMonth10,LastYearMonth11,LastYearMonth12,CurYearMonth1,CurYearMonth2,CurYearMonth3,CurYearMonth4,CurYearMonth5,CurYearMonth6,CurYearMonth7,CurYearMonth8,CurYearMonth9,CurYearMonth10,CurYearMonth11,CurYearMonth12,(ActualLastYear1+ForecastLastYear1) As SumFX"
            ',LastYearMonth1,LastYearMonth2,LastYearMonth3,LastYearMonth4,LastYearMonth5
            sql += " , ProductItems.ItemNo"
            sql += " From budgetRevPlans INNER JOIN FundCenters ON BudgetRevPlans.FundCenter_FundCenterCode = FundCenters.FundCenterCode"
            sql += " INNER JOIN Products ON BudgetRevPlans.Product_ProductCode = Products.ProductCode INNER JOIN ProductItems ON BudgetRevplans.ProductItem_Id = ProductItems.Id"

            Dim fctr As String = ""
            fctr = Session("search_fctr")
            If TabContainer1.ActiveTab.ID = TabPanel1.ID Then
                sql += " WHERE 1 = 1 "
                'sql += " WHERE BudgetDetails.FundCenter_FundCenterCode BETWEEN " & Val(WebCombo1.Value) & " AND " & Val(WebCombo2.Value

                If hdf1.Value.ToString <> "" Then

                    sql += " AND BudgetRevPlans.Product_Productcode IN ("
                    Dim Numx As Array = hdf1.Value.Split(",")
                    For i = 0 To Numx.Length - 1

                        If i <> 0 Then
                            sql += ","
                        End If
                        sql += "'" & Numx(i).ToString & "'"

                    Next
                    sql += ") "
                End If


                sql += " AND BudgetRevPlans.Product_ProductCode IS NOT NULL "
                sql += " And ProductItems.FormID = 'P04' "


                sql += " AND ProductItems.PlanYear = " & PlanYearsTxt.Text & " "
                sql += " AND BudgetRevPlans.PlanYear = " & PlanYearsTxt.Text & " "
                sql += " AND Products.PlanYear = " & PlanYearsTxt.Text & " "
                sql += " AND FundCenters.PlanYear = " & PlanYearsTxt.Text & " "
                sql += " AND BudgetRevPlans.Version = '" & VersionTxt.Text & "'"
                If fctr <> "" Then
                    sql += " AND BudgetRevPlans.FundCenter_FundCenterCode IN (" & fctr & ") "
                Else
                    sql += " AND BudgetRevPlans.FundCenter_FundCenterCode IN (" & prefil & ") "
                End If
                'temp is main
                sql += " )"
                sql += " select temp.*"
                sql += " ,isnull(LastyearAct.LastYearMonth1,0) as LastYearMonth1"
                sql += " ,isnull(LastyearAct.LastYearMonth2,0) as LastYearMonth2 "
                sql += " ,isnull(LastyearAct.LastYearMonth3,0) as LastYearMonth3"
                sql += " ,isnull(LastyearAct.LastYearMonth4,0) as LastYearMonth4 "
                sql += " ,isnull(LastyearAct.LastYearMonth5,0) as LastYearMonth5  "
                sql += " from temp left join "

                sql += "  (select BudgetDetails.FundCenter_FundCenterCode as "
                sql += " fcode2,BudgetDetails.Product_ProductCode as p2"
                sql += " ,ABS ( sum(BudgetDetails.Actual1)) as LastYearMonth1 "
                sql += " ,ABS ( sum(BudgetDetails.Actual2))as LastYearMonth2 "
                sql += " ,ABS ( sum(BudgetDetails.Actual3))as LastYearMonth3 "
                sql += " ,ABS ( sum(BudgetDetails.Actual4))as LastYearMonth4 "
                sql += " ,ABS ( sum(BudgetDetails.Actual5))as LastYearMonth5 "

                sql += "  ,(select ProductItem_Id "
                sql += "   from ProductItemRevs"
                sql += " where PlanYear =" & oldyear
                sql += " and FormId='P04'"
                sql += " and Product_ProductCode=BudgetDetails.Product_ProductCode "
                sql += " and Cmmt_CmmtCode=BudgetDetails.Cmmt_CmmtCode )as ProductItem_Id"

                sql += " from BudgetDetails"
                sql += " where Version='A01' and BudgetDetails.PlanYear=" & oldyear
                sql += " and BudgetDetails.Product_ProductCode in  "
                sql += " (select p.Product_ProductCode from ProductItemRevs as"
                sql += " p where p.Cmmt_CmmtCode=BudgetDetails.Cmmt_CmmtCode "
                sql += " and p.Product_ProductCode=BudgetDetails.Product_ProductCode "
                sql += " and p.PlanYear=" & oldyear & " and p.formId='P04') "
                sql += " group by BudgetDetails.FundCenter_FundCenterCode,BudgetDetails.Product_ProductCode,BudgetDetails.Cmmt_CmmtCode"
                sql += " )"
                sql += " as LastyearAct on "
                sql += " temp.FundCenter_FundCenterCode = LastyearAct.fcode2"
                sql += " and temp.ProductCode=LastyearAct.p2 "
                'sql += " and temp.ProductItem_Id=LastyearAct.ProductItem_Id"
                sql += " ORDER BY temp.FundCenter_FundCenterCode, temp.Id"
                ' sql += " ORDER BY BudgetRevPlans.FundCenter_FundCenterCode,Id"

                adapter.GetDataByFilter(datatable, sql)
                'Response.Write(sql)

            ElseIf TabContainer1.ActiveTab.ID = TabPanel2.ID Then
                sql += " WHERE 1 = 1 "
                'sql += " WHERE BudgetDetails.FundCenter_FundCenterCode IN (SELECT FundCenter_FundCenterCode FROM FundCenterHierarchies "
                'sql += " WHERE FundCenter_FundCenterCode = " & Val(WebCombo3.Value) & " OR ParentFundCenterHierarchy_Id = " & Val(WebCombo3.Value) & ") "
                If hdf1.Value.ToString <> "" Then

                    sql += " AND BudgetRevPlans.Product_Productcode IN ("
                    Dim Numx As Array = hdf1.Value.Split(",")

                    For i = 0 To Numx.Length - 1

                        If i <> 0 Then
                            sql += ","
                        End If
                        sql += "'" & Numx(i).ToString & "'"

                    Next
                    sql += ") "
                End If


                sql += " AND BudgetRevPlans.Product_ProductCode IS NOT NULL "
                sql += " And ProductItems.FormID = 'P04' "


                sql += " AND ProductItems.PlanYear = " & PlanYearsTxt.Text & " "
                sql += " AND BudgetRevPlans.PlanYear = " & PlanYearsTxt.Text & " "
                sql += " AND Products.PlanYear = " & PlanYearsTxt.Text & " "
                sql += " AND FundCenters.PlanYear = " & PlanYearsTxt.Text & " "
                sql += " AND BudgetRevPlans.Version = '" & VersionTxt.Text & "'"
                If fctr <> "" Then
                    sql += " AND BudgetRevPlans.FundCenter_FundCenterCode IN (" & fctr & ") "
                Else
                    sql += " AND BudgetRevPlans.FundCenter_FundCenterCode IN (" & prefil & ") "
                End If
                'temp is main
                sql += " )"
                sql += " select temp.*"
                sql += " ,isnull(LastyearAct.LastYearMonth1,0) as LastYearMonth1"
                sql += " ,isnull(LastyearAct.LastYearMonth2,0) as LastYearMonth2 "
                sql += " ,isnull(LastyearAct.LastYearMonth3,0) as LastYearMonth3"
                sql += " ,isnull(LastyearAct.LastYearMonth4,0) as LastYearMonth4 "
                sql += " ,isnull(LastyearAct.LastYearMonth5,0) as LastYearMonth5  "
                sql += " from temp left join "

                sql += "  (select BudgetDetails.FundCenter_FundCenterCode as "
                sql += " fcode2,BudgetDetails.Product_ProductCode as p2"
                sql += " ,ABS ( sum(BudgetDetails.Actual1)) as LastYearMonth1 "
                sql += " ,ABS ( sum(BudgetDetails.Actual2))as LastYearMonth2 "
                sql += " ,ABS ( sum(BudgetDetails.Actual3))as LastYearMonth3 "
                sql += " ,ABS ( sum(BudgetDetails.Actual4))as LastYearMonth4 "
                sql += " ,ABS ( sum(BudgetDetails.Actual5))as LastYearMonth5 "

                sql += "  ,(select ProductItem_Id "
                sql += "   from ProductItemRevs"
                sql += " where PlanYear =" & oldyear
                sql += " and FormId='P04'"
                sql += " and Product_ProductCode=BudgetDetails.Product_ProductCode "
                sql += " and Cmmt_CmmtCode=BudgetDetails.Cmmt_CmmtCode )as ProductItem_Id"

                sql += " from BudgetDetails"
                sql += " where Version='A01' and BudgetDetails.PlanYear=" & oldyear
                sql += " and BudgetDetails.Product_ProductCode in  "
                sql += " (select p.Product_ProductCode from ProductItemRevs as"
                sql += " p where p.Cmmt_CmmtCode=BudgetDetails.Cmmt_CmmtCode "
                sql += " and p.Product_ProductCode=BudgetDetails.Product_ProductCode "
                sql += " and p.PlanYear=" & oldyear & " and p.formId='P04') "
                sql += " group by BudgetDetails.FundCenter_FundCenterCode,BudgetDetails.Product_ProductCode,BudgetDetails.Cmmt_CmmtCode"
                sql += " )"
                sql += " as LastyearAct on "
                sql += " temp.FundCenter_FundCenterCode = LastyearAct.fcode2"
                sql += " and temp.ProductCode=LastyearAct.p2 "
                'sql += " and temp.ProductItem_Id=LastyearAct.ProductItem_Id"
                sql += " ORDER BY temp.FundCenter_FundCenterCode, temp.Id"
                'sql += " ORDER BY BudgetRevPlans.FundCenter_FundCenterCode,Id"

                adapter.GetDataByFilter(datatable, sql)
                '  Response.Write(sql)

            End If

            'Response.Write(sql)

            datatable.Columns("FundCenter_FundCenterCode").AllowDBNull = True
            'datatable.Columns("FundCenter_PlanYear").AllowDBNull = True

            'datatable.Columns("Fund_FundCode").AllowDBNull = True
            'datatable.Columns("Fund_PlanYear").AllowDBNull = True

            datatable.Columns("Id").ReadOnly = False

            'Response.Write(Val(Session("FCTR")))
            e.DataSource = datatable


            'datatable = adapter.GetDataByMultiple(Val(Session("PlanYear")), Val(Session("Versions")), Session("users"))
        Else
            Dim sql As String
            Dim fctr As String = ""
            fctr = Session("search_fctr")

            sql = "with temp as( select BudgetRevPlans.id,BudgetRevPlans.FundCenter_FundCenterCode,FundCenters.Description As FCName,BudgetRevplans.Product_ProductCode As ProductCode,Products.Description As ProductDesc,BudgetRevPlans.ProductItem_Id,ProductItems.Description As ProItemDesc"
            sql += " ,ActualLastYear2,ActualLastYear1,ForecastLastYear1,ForecastCurYear,LastYearMonth6,LastYearMonth7,LastYearMonth8,LastYearMonth9,LastYearMonth10,LastYearMonth11,LastYearMonth12,CurYearMonth1,CurYearMonth2,CurYearMonth3,CurYearMonth4,CurYearMonth5,CurYearMonth6,CurYearMonth7,CurYearMonth8,CurYearMonth9,CurYearMonth10,CurYearMonth11,CurYearMonth12,(ActualLastYear1+ForecastLastYear1) As SumFX"
            'LastYearMonth1,LastYearMonth2,LastYearMonth3,LastYearMonth4,LastYearMonth5,
            sql += " , ProductItems.ItemNo"
            sql += " From budgetRevPlans INNER JOIN FundCenters ON BudgetRevPlans.FundCenter_FundCenterCode = FundCenters.FundCenterCode"
            sql += " INNER JOIN Products ON BudgetRevPlans.Product_ProductCode = Products.ProductCode INNER JOIN ProductItems ON BudgetRevplans.ProductItem_Id = ProductItems.Id"
            sql += " And ProductItems.FormID = 'P04' "


            sql += " AND ProductItems.PlanYear = " & PlanYearsTxt.Text & " "
            sql += " AND BudgetRevPlans.PlanYear = " & PlanYearsTxt.Text & " "
            sql += " AND Products.PlanYear = " & PlanYearsTxt.Text & " "
            sql += " AND FundCenters.PlanYear = " & PlanYearsTxt.Text & " "
            sql += " AND BudgetRevPlans.Version = '" & VersionTxt.Text & "'"
            If fctr <> "" Then
                sql += " AND BudgetRevPlans.FundCenter_FundCenterCode IN (" & fctr & ") "
            Else
                sql += " AND BudgetRevPlans.FundCenter_FundCenterCode IN (" & prefil & ") "
            End If
            'temp is main
            sql += " )"
            sql += " select temp.*"
            sql += " ,isnull(LastyearAct.LastYearMonth1,0) as LastYearMonth1"
            sql += " ,isnull(LastyearAct.LastYearMonth2,0) as LastYearMonth2 "
            sql += " ,isnull(LastyearAct.LastYearMonth3,0) as LastYearMonth3"
            sql += " ,isnull(LastyearAct.LastYearMonth4,0) as LastYearMonth4 "
            sql += " ,isnull(LastyearAct.LastYearMonth5,0) as LastYearMonth5  "
            sql += " from temp left join "

            sql += "  (select BudgetDetails.FundCenter_FundCenterCode as "
            sql += " fcode2,BudgetDetails.Product_ProductCode as p2"
            sql += " ,ABS ( sum(BudgetDetails.Actual1)) as LastYearMonth1 "
            sql += " ,ABS ( sum(BudgetDetails.Actual2))as LastYearMonth2 "
            sql += " ,ABS ( sum(BudgetDetails.Actual3))as LastYearMonth3 "
            sql += " ,ABS ( sum(BudgetDetails.Actual4))as LastYearMonth4 "
            sql += " ,ABS ( sum(BudgetDetails.Actual5))as LastYearMonth5 "

            sql += "  ,(select ProductItem_Id "
            sql += "   from ProductItemRevs"
            sql += " where PlanYear =" & oldyear
            sql += " and FormId='P04'"
            sql += " and Product_ProductCode=BudgetDetails.Product_ProductCode "
            sql += " and Cmmt_CmmtCode=BudgetDetails.Cmmt_CmmtCode )as ProductItem_Id"

            sql += " from BudgetDetails"
            sql += " where Version='A01' and BudgetDetails.PlanYear=" & oldyear
            sql += " and BudgetDetails.Product_ProductCode in  "
            sql += " (select p.Product_ProductCode from ProductItemRevs as"
            sql += " p where p.Cmmt_CmmtCode=BudgetDetails.Cmmt_CmmtCode "
            sql += " and p.Product_ProductCode=BudgetDetails.Product_ProductCode "
            sql += " and p.PlanYear=" & oldyear & " and p.formId='P04') "
            sql += " group by BudgetDetails.FundCenter_FundCenterCode,BudgetDetails.Product_ProductCode,BudgetDetails.Cmmt_CmmtCode"
            sql += " )"
            sql += " as LastyearAct on "
            sql += " temp.FundCenter_FundCenterCode = LastyearAct.fcode2"
            sql += " and temp.ProductCode=LastyearAct.p2 "
            'sql += " and temp.ProductItem_Id=LastyearAct.ProductItem_Id"
            sql += " ORDER BY temp.FundCenter_FundCenterCode, temp.Id"
            '  sql += " ORDER BY Id"
            adapter.GetDataByFilter(datatable, sql)
            'Response.Write(sql)
            'datatable = adapter.GetDataByMultiple2(Val(Session("PlanYear")), Val(Session("Versions")), Session("users"))



            'datatable.Columns("FundCenter_PlanYear").AllowDBNull = True

            'datatable.Columns("Fund_FundCode").AllowDBNull = True
            'datatable.Columns("Fund_PlanYear").AllowDBNull = True

            datatable.Columns("Id").ReadOnly = False

            'Response.Write(Val(Session("FCTR")))
            e.DataSource = datatable
        End If

        'Else
        '    Dim sql As String = ""
        '    Dim prefil As String = ""
        '    prefil = Session("prefilter")

        '    sql += " WHERE 1 = 1 "
        '    'sql += " WHERE BudgetDetails.FundCenter_FundCenterCode BETWEEN " & Val(WebCombo1.Value) & " AND " & Val(WebCombo2.Value)
        '    sql += " AND Version = '" & VersionTxt.Text & "'"
        '    sql += " AND FormId = 'F01' "
        '    sql += " AND BudgetDetails.Project_ProjectCode IS NOT NULL "
        '    If prefil <> "" Then
        '        sql += " AND BudgetDetails.FundCenter_FundCenterCode IN (" & prefil & ") "
        '    End If
        '    sql += " ORDER BY FundCenter_FundCenterCode,Id"
        '    adapter.GetDataByFilter(datatable, sql)

        '    'datatable = adapter.GetDataBySingle(Val(Session("PlanYear")), Val(Session("Versions")), Val(Session("FCTR")))

        '    datatable.Columns("PlanYear").AllowDBNull = True
        '    datatable.Columns("BaseYear").AllowDBNull = True
        '    datatable.Columns("Version").AllowDBNull = True
        '    datatable.Columns("FundCenter_FundCenterCode").AllowDBNull = True
        '    'datatable.Columns("FundCenter_PlanYear").AllowDBNull = True
        '    datatable.Columns("UserBudgetDetail_BudgetDetail_UserName").AllowDBNull = True
        '    'datatable.Columns("Fund_FundCode").AllowDBNull = True
        '    'datatable.Columns("Fund_PlanYear").AllowDBNull = True

        '    datatable.Columns("Id").ReadOnly = False

        '    'Response.Write(Val(Session("FCTR")))
        '    e.DataSource = datatable
        'End If

    End Sub
    Dim old_fctr As String = ""
    Dim old_prod As String = ""
    Protected Sub WebGrid1_InitializeRow(ByVal sender As Object, ByVal e As ISNet.WebUI.WebGrid.RowEventArgs)
        ' Dim area_level As Decimal = Val(e.Row.Cells.GetNamedItem("area_level").Text)
        'If area_level = 9 Then
        'e.Row.Style.BackColor = Drawing.Color.Coral
        ' End If

        If e.Row.Type = RowType.Record Then
            If lockhash(e.Row.Cells(2).Value.ToString.Trim) = True Then
                e.Row.Cells(0).Column.IsRowChecker = False
                e.Row.ForceNoEdit = True
                e.Row.Style.BackColor = Drawing.Color.Gray
            Else
                e.Row.Cells(0).Column.IsRowChecker = True
            End If
        End If



        e.Row.Cells(4).Style.BackColor = System.Drawing.ColorTranslator.FromHtml("#ABABAB")
        e.Row.Cells(5).Style.BackColor = System.Drawing.ColorTranslator.FromHtml("#ABABAB")
        e.Row.Cells(6).Style.BackColor = System.Drawing.ColorTranslator.FromHtml("#ABABAB")
        e.Row.Cells(7).Style.BackColor = System.Drawing.ColorTranslator.FromHtml("#ABABAB")
        e.Row.Cells(8).Style.BackColor = System.Drawing.ColorTranslator.FromHtml("#ABABAB")
        e.Row.Cells(9).Style.BackColor = System.Drawing.ColorTranslator.FromHtml("#ABABAB")
        e.Row.Cells(10).Style.BackColor = System.Drawing.ColorTranslator.FromHtml("#ABABAB")

        e.Row.Cells(18).Style.BackColor = System.Drawing.ColorTranslator.FromHtml("#ABABAB")
        e.Row.Cells(19).Style.BackColor = System.Drawing.ColorTranslator.FromHtml("#ABABAB")
        e.Row.Cells(32).Style.BackColor = System.Drawing.ColorTranslator.FromHtml("#ABABAB")
        If e.Row.Type = RowType.Record Then
            e.Row.ForceNoEdit = True
            Dim dr As DataRowView = DirectCast(e.Row.DataRow, DataRowView)
            Dim code As String = dr("ItemNo").ToString


            Dim fctr As String = dr("FundCenter_FundCenterCode").ToString()
            Dim prod As String = dr("ProductCode").ToString()
            If fctr = old_fctr And prod = old_prod Then
                e.Row.Cells(2).Text = ""
                e.Row.Cells(2).Value = ""
                e.Row.Cells(3).Text = ""
                e.Row.Cells(3).Value = ""
            End If
            old_fctr = fctr
            old_prod = prod


        End If


    End Sub
    Protected Sub WebGrid1_InitializeColumn(sender As Object, e As ColumnEventArgs) Handles WebGrid1.InitializeColumn
        If e.Column.Name = "result1" Then
            e.Column.Caption = "ผลจริงปี</br> " & Val(PlanYearsTxt.Text) - 2
        End If

        If e.Column.Name = "truey1" Then
            e.Column.Caption = "ผลจริง</br>ม.ค. " & (Val(PlanYearsTxt.Text) - 1).ToString

        End If

        If e.Column.Name = "truey2" Then
            e.Column.Caption = "ผลจริง</br>ก.พ. " & (Val(PlanYearsTxt.Text) - 1).ToString

        End If

        If e.Column.Name = "truey3" Then
            e.Column.Caption = "ผลจริง</br>มี.ค. " & (Val(PlanYearsTxt.Text) - 1).ToString

        End If
        If e.Column.Name = "truey4" Then
            e.Column.Caption = "ผลจริง</br>เม.ย. " & (Val(PlanYearsTxt.Text) - 1).ToString

        End If
        If e.Column.Name = "truey5" Then
            e.Column.Caption = "ผลจริง</br>พ.ค. " & (Val(PlanYearsTxt.Text) - 1).ToString

        End If
        If e.Column.Name = "tobtanx11" Then
            e.Column.Caption = "รวมผลจริง</br> " & (Val(PlanYearsTxt.Text) - 1).ToString

        End If
        If e.Column.Name = "truey6" Then
            e.Column.Caption = "ประมาณการ</br>มิ.ย. " & (Val(PlanYearsTxt.Text) - 1).ToString

        End If
        If e.Column.Name = "truey7" Then
            e.Column.Caption = "ประมาณการ</br>ก.ค. " & (Val(PlanYearsTxt.Text) - 1).ToString

        End If
        If e.Column.Name = "truey8" Then
            e.Column.Caption = "ประมาณการ</br>ส.ค. " & (Val(PlanYearsTxt.Text) - 1).ToString

        End If
        If e.Column.Name = "truey9" Then
            e.Column.Caption = "ประมาณการ</br>ก.ย. " & (Val(PlanYearsTxt.Text) - 1).ToString

        End If
        If e.Column.Name = "truey10" Then
            e.Column.Caption = "ประมาณการ</br>ต.ค. " & (Val(PlanYearsTxt.Text) - 1).ToString

        End If
        If e.Column.Name = "truey11" Then
            e.Column.Caption = "ประมาณการ</br>พ.ย. " & (Val(PlanYearsTxt.Text) - 1).ToString

        End If
        If e.Column.Name = "truey12" Then
            e.Column.Caption = "ประมาณการ</br>ธ.ค. " & (Val(PlanYearsTxt.Text) - 1).ToString

        End If
        If e.Column.Name = "trueyX1" Then
            e.Column.Caption = "รวมประมาณการ</br> " & (Val(PlanYearsTxt.Text) - 1).ToString

        End If
        If e.Column.Name = "trueyX2" Then
            e.Column.Caption = "รวมปี</br> " & (Val(PlanYearsTxt.Text) - 1).ToString

        End If
        If e.Column.Name = "truey121" Then
            e.Column.Caption = "ประมาณการ</br>ม.ค. " & (Val(PlanYearsTxt.Text)).ToString

        End If
        If e.Column.Name = "truey22" Then
            e.Column.Caption = "ประมาณการ</br>ก.พ. " & (Val(PlanYearsTxt.Text)).ToString

        End If
        If e.Column.Name = "truey32" Then
            e.Column.Caption = "ประมาณการ</br>มี.ค. " & (Val(PlanYearsTxt.Text)).ToString

        End If
        If e.Column.Name = "truey42" Then
            e.Column.Caption = "ประมาณการ</br>เม.ย. " & (Val(PlanYearsTxt.Text)).ToString

        End If
        If e.Column.Name = "truey52" Then
            e.Column.Caption = "ประมาณการ</br>พ.ค. " & (Val(PlanYearsTxt.Text)).ToString

        End If
        If e.Column.Name = "truey62" Then
            e.Column.Caption = "ประมาณการ</br>มิ.ย. " & (Val(PlanYearsTxt.Text)).ToString

        End If
        If e.Column.Name = "truey72" Then
            e.Column.Caption = "ประมาณการ</br>ก.ค. " & (Val(PlanYearsTxt.Text)).ToString

        End If
        If e.Column.Name = "truey82" Then
            e.Column.Caption = "ประมาณการ</br>ส.ค. " & (Val(PlanYearsTxt.Text)).ToString

        End If
        If e.Column.Name = "truey92" Then
            e.Column.Caption = "ประมาณการ</br>ก.ย. " & (Val(PlanYearsTxt.Text)).ToString

        End If
        If e.Column.Name = "truey102" Then
            e.Column.Caption = "ประมาณการ</br>ต.ค. " & (Val(PlanYearsTxt.Text)).ToString

        End If
        If e.Column.Name = "truey112" Then
            e.Column.Caption = "ประมาณการ</br>พ.ย. " & (Val(PlanYearsTxt.Text)).ToString

        End If
        If e.Column.Name = "truey122" Then
            e.Column.Caption = "ประมาณการ</br>ธ.ค. " & (Val(PlanYearsTxt.Text)).ToString

        End If
        If e.Column.Name = "trueyX23" Then
            e.Column.Caption = "รวมประมาณการ</br> " & (Val(PlanYearsTxt.Text)).ToString

        End If

        If e.Column.ColumnType = ColumnType.CheckBox And lockhash.Count > 0 Then
            e.Column.IsRowChecker = False
            e.Column.Width = 24
            e.Column.Caption = " "
        End If
    End Sub
    Protected Sub FundCenterCombo_InitializeDataSource(sender As Object, e As ISNet.WebUI.WebCombo.DataSourceEventArgs) Handles FundCenterCombo.InitializeDataSource
        Dim ds As New DataSet
        'If Session("Versions") > 1 Then
        If IsPostBack = True And Session("Search") = "true" Then
            Dim fctr As String = ""
            fctr = Session("search_fctr")
            Dim adap As New BasicDataTableAdapters.FCTR_Child2TableAdapter
            Dim dt As New BasicData.FCTR_Child2DataTable
            Dim sql = ""
            sql += " WHERE 1 = 1 "
            sql += " AND UserName = '" & Session("users") & "'"
            If fctr <> "" Then
                sql += " AND fctr_view.FundCenterCode IN (" & fctr & ") "
            End If
            sql += " and FundCenterHierarchies.PlanYear = " & Val(Session("PlanYear")) & " "
            sql += "ORDER BY [Level] ASC, FundCenterCode ASC"
            adap.GetDataByFilter(dt, sql)
            e.DataSource = dt
            'Response.Write(sql & "<br />")
        Else
            'ds = PublicFunction.GetChild2(Session("users"))
            'ds.Tables(0).DefaultView.Sort = "FundCenterCode ASC"
            'e.DataSource = ds
            Dim adap As New BasicDataTableAdapters.FCTR_Child2TableAdapter
            Dim dt As New BasicData.FCTR_Child2DataTable
            Dim sql = ""
            Dim prefil As String = ""
            prefil = Session("prefilter")
            sql += " WHERE 1 = 1 "
            sql += " AND UserName = '" & Session("users") & "'"
            If prefil <> "" Then
                sql += " AND fctr_view.FundCenterCode IN (" & prefil & ") "
            End If
            sql += " and FundCenterHierarchies.PlanYear = " & Val(Session("PlanYear")) & " "
            sql += "ORDER BY [Level] ASC, FundCenterCode ASC"
            adap.GetDataByFilter(dt, sql)
            e.DataSource = dt
        End If


        'Else
        'Dim adap As New BasicDataTableAdapters.FCTR_ChildTableAdapter
        'Dim dt As New BasicData.FCTR_ChildDataTable
        'dt = adap.GetOwnData(Session("FCTR"))
        'e.DataSource = dt
        'End If
    End Sub

    Protected Sub ProductCombo_InitializeDataSource(sender As Object, e As ISNet.WebUI.WebCombo.DataSourceEventArgs) Handles ProductCombo.InitializeDataSource

        Dim adapter As New SplitBudgetDSTableAdapters.ProductsTableAdapter

        Dim data As New SplitBudgetDS.ProductsDataTable
        'data = adapter.GetDataByPlanYear(Val(Session("PlanYear")))

        data = adapter.GetDataByP04(PlanYearsTxt.Text)
        e.DataSource = data
    End Sub




    Protected Sub WebGrid1_AddRow(ByVal sender As Object, ByVal e As ISNet.WebUI.WebGrid.RowEventArgs)





    End Sub

    Protected Sub WebGrid1_UpdateRow(ByVal sender As Object, ByVal e As ISNet.WebUI.WebGrid.RowEventArgs)
        If lockhash(e.Row.Cells(2).Value.ToString.Trim) = True Then
            WebGrid1.ClearCachedDataSource()
            Throw New ArgumentException("ไม่สามารถบันทึกได้ เนื่องจากมีการส่งแผนไปแล้ว")
        End If
        Dim adapter As New MSinchuaTableAdapters.BudgetRevPlans1TableAdapter
        Dim adapterX As New PDataSetTableAdapters.BudgetRevPlans1TableAdapter
        Dim adapterX2 As New PDataSetTableAdapters.ProductRevsTableAdapter
        Dim adapter12 As New SplitData2TableAdapters.Budget12TableAdapter
        Dim id As Decimal
        id = e.Row.KeyValue
        'WebGrid1.ClientAction.Alert(id)
        Try
            adapterX.UpdateQuery(Val(e.Row.Cells(4).Value), Val(e.Row.Cells(10).Value), Val(e.Row.Cells(20).Value), Val(e.Row.Cells(36).Value), Val(e.Row.Cells(5).Value), Val(e.Row.Cells(6).Value), Val(e.Row.Cells(7).Value), Val(e.Row.Cells(8).Value), Val(e.Row.Cells(9).Value), Val(e.Row.Cells(13).Value), Val(e.Row.Cells(14).Value), Val(e.Row.Cells(15).Value), Val(e.Row.Cells(16).Value), Val(e.Row.Cells(17).Value), Val(e.Row.Cells(18).Value), Val(e.Row.Cells(19).Value), Val(e.Row.Cells(24).Value), Val(e.Row.Cells(25).Value), Val(e.Row.Cells(26).Value), Val(e.Row.Cells(27).Value), Val(e.Row.Cells(287).Value), Val(e.Row.Cells(29).Value), Val(e.Row.Cells(30).Value), Val(e.Row.Cells(31).Value), Val(e.Row.Cells(32).Value), Val(e.Row.Cells(33).Value), Val(e.Row.Cells(34).Value), Val(e.Row.Cells(35).Value), Date.Now(), Session("users"), id)
            adapter12.DeleteBID(id)
        Catch ex As Exception
            WebGrid1.ClearCachedDataSource()
            Throw New ArgumentException("ไม่สามารถแก้ไขข้อมูลได้ กรุณาตรวจสอบจำนวนเงิน")
        End Try
        'Dim adapter2 As New BasicDataTableAdapters.CmmtDetailsTableAdapter
        'Dim cmmt_id As Decimal = adapter2.GetCmmtId(Val(e.Row.Cells(2).Value))
        ' adapter.UpdateQuery(Val(e.Row.Cells(4).Value), Val(e.Row.Cells(10).Value), Val(e.Row.Cells(18).Value), Val(e.Row.Cells(32).Value), Val(e.Row.Cells(5).Value), Val(e.Row.Cells(6).Value), Val(e.Row.Cells(7).Value), Val(e.Row.Cells(8).Value), Val(e.Row.Cells(9).Value), Val(e.Row.Cells(11).Value), Val(e.Row.Cells(12).Value), Val(e.Row.Cells(13).Value), Val(e.Row.Cells(14).Value), Val(e.Row.Cells(15).Value), Val(e.Row.Cells(16).Value), Val(e.Row.Cells(17).Value), Val(e.Row.Cells(20).Value), Val(e.Row.Cells(21).Value) Val(e.Row.Cells(31).Value), Date.Now(), Date.Now(), Session("users"), Session("users"), e.Row.Cells(1).Value, Val(PlanYearsTxt.Text), e.Row.Cells(2).Value, Val(PlanYearsTxt.Text), Val(e.Row.Cells(3).Value), id)
        ' adapter.UpdateQuery(Val(e.Row.Cells(4).Value), Val(e.Row.Cells(5).Value), e.Row.Cells(7).Value, e.Row.Cells(8).Value, Date.Now, Session("users"), e.Row.Cells(1).Value, e.Row.Cells(3).Value, cmmtcode, e.Row.Cells(2).Value, id)

        ' adapter.UpdateOTProject(Val(e.Row.Cells(4).Value), Val(e.Row.Cells(5).Value), e.Row.Cells(6).Value, e.Row.Cells(7).Value, e.Row.Cells(8).Value, e.Row.Cells(9).Value, Date.Now, Session("users"), e.Row.Cells(1).Value, e.Row.Cells(3).Value, cmmtcode, e.Row.Cells(2).Value, id)

        WebGrid1.ClearCachedDataSource()
        WebGrid1.RebindDataSource()

    End Sub

    Sub PlotNode()

        Dim MyNode As WebTreeViewNode
        MyNode = New WebTreeViewNode()

        Dim adapter As New FundCenterParentTableAdapters.fctr_viewTableAdapter
        Dim dt As New FundCenterParent.fctr_viewDataTable
        dt = adapter.GetDataByUser(Session("users"), Val(PlanYearsTxt.Text))

        Dim root_id As String

        MyNode.Text = "GSB"
        MyNode.Value = "0"
        root_id = "0"

        If dt.Count > 0 Then

            WebTreeView3.Nodes.Add(MyNode)

            Dim rootpath = ""
            Dim prefil As String = ""
            prefil = Session("prefilter")
            rootpath = FctrClass.GetRootPrefil(Session("users"), Val(Session("planyear")), prefil)
            Dim rootarr() As String = Split(rootpath, ",")
            WebTreeView3.Nodes.Add(MyNode)

            For i = 0 To rootarr.Length - 1
                PlotChild(rootarr(i), MyNode, 1)
            Next
        End If

    End Sub

    Sub PlotChild(ByVal gpath As String, ByRef cnode As WebTreeViewNode, ByVal level As Decimal)
        'Response.Write(gpath & "<br>")
        Dim Hadapter As New FundCenterParentTableAdapters.FctHTableAdapter
        Dim Hdatatable As New FundCenterParent.FctHDataTable
        Hdatatable = Hadapter.GetDataByGPath(gpath, Val(Session("planyear")))

        Dim MyNode As WebTreeViewNode
        MyNode = New WebTreeViewNode()
        For Each row As FundCenterParent.FctHRow In Hdatatable


            MyNode.Text = row.Description
            MyNode.Value = row.FundCenter_FundCenterCode

            cnode.Nodes.Add(MyNode)
        Next

        'Hdatatable = Hadapter.GetDataByUserLikeGpath(gpath & "__", Session("users"), Val(Session("planyear")))
        'For Each row As FundCenterParent.FctHRow In Hdatatable

        '    PlotChild(row.grouppath, MyNode, level + 1)
        'Next

        Dim hadap2 As New FundCenterParentTableAdapters.UserLikeGpathTableAdapter
        Dim hdt2 As New FundCenterParent.UserLikeGpathDataTable
        Dim sql As String = ""
        Dim prefil As String = ""
        prefil = Session("prefilter")

        'If prefil <> "" Then
        '    sql += " AND fctr_view.FundCenterCode IN (" & prefil & ") "
        'End If
        'sql += " AND grouppath like '" & gpath & "__' "
        'sql += " and USERNAME = '" & Session("users") & "' AND fctr_view.PlanYear = " & Val(Session("PlanYear")) & " AND Fcth.PlanYear = " & Val(Session("PlanYear"))
        'hadap2.GetDataByFilter(hdt2, sql)

        Dim pathadd As String = "__"
        'For i = 1 To 4
        sql = ""
        Dim fullpath As String = gpath & pathadd
        If prefil <> "" Then
            sql += " AND fctr_view.FundCenterCode IN (" & prefil & ") "
        End If
        sql += " AND grouppath like '" & fullpath & "' "
        sql += " and USERNAME = '" & Session("users") & "' AND fctr_view.PlanYear = " & Val(Session("PlanYear")) & " AND Fcth.PlanYear = " & Val(Session("PlanYear"))
        hadap2.GetDataByFilter(hdt2, sql)
        'If hdt2.Count > 0 Then
        '    Exit For
        'End If
        'Response.Write(sql & "<br />")
        'pathadd += "__"
        'Next
        For Each row As FundCenterParent.UserLikeGpathRow In hdt2
            If Len(row.grouppath) < 10 Then
                PlotChild(row.grouppath, MyNode, level + 1)
            End If

        Next

    End Sub

    Protected Sub SearhBtn_Click(sender As Object, e As ImageClickEventArgs) Handles SearhBtn.Click
        GenerateValues()

        If TabContainer1.ActiveTab.ID = TabPanel1.ID Then
            Session.Remove("search_fctr")
            If WebCombo1.Value <> "" And WebCombo2.Value <> "" Then
                Session.Add("search_fctr", FctrClass.GetFromToFundCenter(WebCombo1.Value, WebCombo2.Value, Session("users"), Val(PlanYearsTxt.Text)))
            ElseIf WebCombo1.Value <> "" And WebCombo2.Value = "" Then
                Session.Add("search_fctr", FctrClass.GetFromToFundCenter(WebCombo1.Value, WebCombo1.Value, Session("users"), Val(PlanYearsTxt.Text)))
                'Response.Write(FctrClass.GetFromToFundCenter(WebCombo1.Value, WebCombo1.Value, Session("users")))
            ElseIf WebCombo1.Value = "" And WebCombo2.Value <> "" Then
                Session.Add("search_fctr", FctrClass.GetFromToFundCenter(WebCombo2.Value, WebCombo2.Value, Session("users"), Val(PlanYearsTxt.Text)))
                'Response.Write(FctrClass.GetFromToFundCenter(WebCombo2.Value, WebCombo2.Value, Session("users")))
            Else
                Session.Add("search_fctr", Session("prefilter"))
            End If

        ElseIf TabContainer1.ActiveTab.ID = TabPanel2.ID Then
            Session.Remove("search_fctr")
            If WebCombo3.Value = "" Then
                Session.Add("search_fctr", Session("prefilter"))
            Else
                Session.Add("search_fctr", FctrClass.GetSubFundCenter(WebCombo3.Value, Session("users"), Val(PlanYearsTxt.Text), Session("prefilter")))
            End If

        End If

        Session.Remove("Search")
        Session.Add("Search", "true")
        WebGrid1.ClearCachedDataSource()
        WebGrid1.RebindDataSource()

    End Sub

    Sub GenerateValues()
        If hdf1.Value.Length = 0 Then
            Session("Search") = "false"
        End If
        Try
            Dim Numx As Array = hdf1.Value.Split(",")


            For i = 0 To Numx.Length - 1
                ms8.Items.FindByValue(Numx(i).ToString).Selected = True
            Next
        Catch ex As Exception
            logger.Error(ex.Message)
            logger.Error(ex.StackTrace)
        End Try

    End Sub


    'Protected Sub coppy_btn_Click(sender As Object, e As ImageClickEventArgs) Handles coppy_btn.Click

    '    Dim checkedRows As ArrayList = WebGrid1.RootTable.GetCheckedRows()

    '    Dim adapter As New fundCenterTableAdapters.BudgetDetailsTableAdapter

    '    For Each keyValue As String In checkedRows

    '        adapter.CoppyRow(keyValue)

    '    Next keyValue

    '    WebGrid1.ClearCachedDataSource()
    '    WebGrid1.RebindDataSource()

    'End Sub

    'Protected Sub delete_btn_Click(sender As Object, e As ImageClickEventArgs) Handles delete_btn.Click

    '    Dim checkedRows As ArrayList = WebGrid1.RootTable.GetCheckedRows()

    '    Dim adapter As New fundCenterTableAdapters.BudgetDetailsTableAdapter

    '    For Each keyValue As String In checkedRows

    '        adapter.DeleteRow(keyValue)

    '    Next keyValue



    '    WebGrid1.ClearCachedDataSource()
    '    WebGrid1.RebindDataSource()

    'End Sub

    Protected Sub WebGrid1_InitializePostBack(ByVal sender As Object, ByVal e As ISNet.WebUI.WebGrid.PostbackEventArgs)
        If e.Action = PostBackAction.Custom Then
            Dim ActionType As String = TryCast(Request("type"), String)
            If ActionType = "1" Then
                Dim checkedRows As ArrayList = WebGrid1.RootTable.GetCheckedRows()

                Dim adapter As New fundCenterTableAdapters.BudgetDetailsTableAdapter

                For Each keyValue As String In checkedRows

                    adapter.CoppyRow(keyValue)

                Next keyValue
            Else
                Dim adapter As New PDataSetTableAdapters.BudgetRevPlans1TableAdapter
                For Each keyValue As String In WebGrid1.RootTable.GetCheckedRows()
                    adapter.DeleteQuery(keyValue)

                Next keyValue
            End If

            WebGrid1.ClientAction.Refresh()
        End If

    End Sub

    Protected Sub WebCombo1_InitializeDataSource(sender As Object, e As ISNet.WebUI.WebCombo.DataSourceEventArgs) Handles WebCombo1.InitializeDataSource
        'If Session("Versions") > 1 Then
        'ds = PublicFunction.GetChild2(Session("users"))
        'ds.Tables(0).DefaultView.Sort = "FundCenterCode ASC"
        'e.DataSource = ds
        Dim adap As New BasicDataTableAdapters.FCTR_Child2TableAdapter
        Dim dt As New BasicData.FCTR_Child2DataTable
        Dim sql = ""
        Dim prefil As String = ""
        prefil = Session("prefilter")
        sql += " WHERE 1 = 1 "
        sql += " and USERNAME = '" & Session("users") & "' AND fctr_view.PlanYear = " & Val(Session("PlanYear")) & " AND FundCenters.PlanYear = " & Val(Session("PlanYear"))
        If prefil <> "" Then
            sql += " AND fctr_view.FundCenterCode IN (" & prefil & ") "
        End If
        sql += " and FundCenterHierarchies.PlanYear = " & Val(Session("PlanYear")) & " "
        sql += "ORDER BY FundCenterCode ASC"
        adap.GetDataByFilter(dt, sql)
        dt.Rows.Add("", "ทุกรายการ", "1", "0")
        dt.DefaultView.Sort = "FundCenterCode"
        e.DataSource = dt



        'Else
        'Dim adap As New BasicDataTableAdapters.FCTR_ChildTableAdapter
        'Dim dt As New BasicData.FCTR_ChildDataTable
        'dt = adap.GetOwnData(Session("FCTR"))
        'e.DataSource = dt
        'End If
    End Sub

    Protected Sub WebCombo2_InitializeDataSource(sender As Object, e As ISNet.WebUI.WebCombo.DataSourceEventArgs) Handles WebCombo2.InitializeDataSource
        'If Session("Versions") > 1 Then
        'ds = PublicFunction.GetChild2(Session("users"))
        'ds.Tables(0).DefaultView.Sort = "FundCenterCode ASC"
        'e.DataSource = ds
        Dim adap As New BasicDataTableAdapters.FCTR_Child2TableAdapter
        Dim dt As New BasicData.FCTR_Child2DataTable
        Dim sql = ""
        Dim prefil As String = ""
        prefil = Session("prefilter")
        sql += " WHERE 1 = 1 "
        sql += " and USERNAME = '" & Session("users") & "' AND fctr_view.PlanYear = " & Val(Session("PlanYear")) & " AND FundCenters.PlanYear = " & Val(Session("PlanYear"))
        If prefil <> "" Then
            sql += " AND fctr_view.FundCenterCode IN (" & prefil & ") "
        End If
        sql += " and FundCenterHierarchies.PlanYear = " & Val(Session("PlanYear")) & " "
        sql += "ORDER BY FundCenterCode ASC"
        adap.GetDataByFilter(dt, sql)
        dt.Rows.Add("", "ทุกรายการ", "1", "0")
        dt.DefaultView.Sort = "FundCenterCode"
        e.DataSource = dt


        'Else
        'Dim adap As New BasicDataTableAdapters.FCTR_ChildTableAdapter
        'Dim dt As New BasicData.FCTR_ChildDataTable
        'dt = adap.GetOwnData(Session("FCTR"))
        'e.DataSource = dt
        'End If
    End Sub

    Protected Sub SaveBtn_Click(sender As Object, e As ImageClickEventArgs) Handles SaveBtn.Click
        WebGrid1.ClearCachedDataSource()
        WebGrid1.RebindDataSource()
    End Sub

    Protected Sub WebCombo3_InitializeDataSource(sender As Object, e As ISNet.WebUI.WebCombo.DataSourceEventArgs) Handles WebCombo3.InitializeDataSource

        Dim adap As New FundCenterParentTableAdapters.SelectorTableAdapter
        Dim dt As New FundCenterParent.SelectorDataTable
        Dim dt2 As New FundCenterParent.SelectorDataTable
        Dim sql = ""
        Dim prefil As String = ""
        prefil = Session("prefilter")
        sql += " WHERE 1 = 1 "
        sql += " and USERNAME = '" & Session("users") & "' AND fctr_view.PlanYear = " & Val(Session("PlanYear")) & " AND FctH.PlanYear = " & Val(Session("PlanYear"))
        If prefil <> "" Then
            sql += " AND fctr_view.FundCenterCode IN (" & prefil & ") "
        End If
        sql += "ORDER BY Grouppath"
        adap.GetDataByFilter(dt2, sql)
        dt.Rows.Add("ทุกรายการ", "0", 0, "0", Val(Session("PlanYear")), "ทุกรายการ")
        dt.Merge(dt2)
        'dt.DefaultView.Sort = "FundCenter_FundCenterCode"
        e.DataSource = dt



    End Sub
End Class
